[展开全部]   [全部折叠]

介绍

新式界面为 NSIS 安装程序提供新式向导风格的用户界面,类似于最新版 Windows 的向导。它基于 NSIS 编译器本身提供的基本用户界面,并扩展为更多界面特点和页面。

像其他一些附加页面一样,支持所有的标准 NSIS 页面 (像组件选择页面和安装文件夹页面)。欢迎页面允许你给出安装过程介绍,同时完成页面提供一种方式以便安装向导完成后让用于决定执行哪些步骤 (例如,是否要立即启动应用程序)。完成页面同样也可用作询问是否有必要重启系统。

Open/Close section 软件截图

Modern UI 2.1

新版本让自定义页面变得更加容易,因为同样的方法可用于和改变新式界面提供的附加页面一样的标准 NSIS 页面。现在也可以用其他 NSIS 插件为新式界面添加新页面。你很快就能看到这样的例子。

欢迎和完成页面将不再使用 InstallOptions 实现,取而代之的是新的 nsDialogs 插件。nsDialogs 允许你创建自定义页面或直接从脚本创建现成页面。

升级到新式界面 1.8 版脚本,你需要:

  • 添加头文件 MUI2.nsh 取代 MUI.nsh
  • 用于 InstallOptions 的宏已被移至与新式界面无关的独立头文件。如果你仍在使用 InstallOptions 用于自定义页面,添加 InstallOptions.nsh,使用宏 INSTALLOPTIONS_* 代替 MUI_INSTALLOPTIONS_*。这些宏本身还是一样的。
  • 为使用 InstallOptions INI 文件的 1.8 版新式界面欢迎和完成页面重写自定义页面代码,应使用 nsDialogs 代替。
  • 在所有的文本中使用标准的 NSIS 方式以避免特殊字符。例如:$\r$\n 创建新行。

脚本头文件

新式界面设置应该插入脚本文件的头部。遵循下面这些项的顺序很重要。例如,页面设置应该在插入页面之前定义,因为页面依赖于界面设置。也可以看看示例脚本,以便了解这在实际脚本中是如何完成的。

参数指定格式:必选项 (选项1 | 选项2) [可选项]

1. 头文件

首先,在脚本顶部添加该行文本以包含新式界面:

!include MUI2.nsh

2. 界面配置

然后,你可以使用界面设置以修改安装程序的外观。这些设置将应用到所有页面。

由 NSIS 编译器本身提供的界面设置 (如 LicenseText、Icon、CheckBitmap、InstallColors 等) 不能用于 MUI 脚本中。新式界面提供了这些设置的等同或者扩展版本。

用法示例:

!define MUI_COMPONENTSPAGE_SMALLDESC ;空值
!define MUI_UI "myUI.exe" ;值
!define MUI_INSTFILESPAGE_COLORS "FFFFFF 000000" ;两种颜色

Open/Close section 界面设置

Open/Close section 页面顶部

MUI_ICON 图标文件
安装程序图标
默认:${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico

MUI_UNICON 图标文件
卸载程序图标
默认:${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico

MUI_HEADERIMAGE
在页面顶部显示一张图片

MUI_HEADERIMAGE_BITMAP BMP文件
显示在安装程序页面顶部的位图图像 (推荐尺寸:150×57 像素)
默认:${NSISDIR}\Contrib\Graphics\Header\nsis.bmp

MUI_HEADERIMAGE_BITMAP_STRETCH mode

  • FitControl (默认)
    拉伸图像以适合图像控件。

  • NoStretchNoCropNoAlign
    不要拉伸安装程序页面顶部图片以适合区域尺寸。仅当你使用不占用整个空间的图片时使用该选项。如果你使用合适的完整尺寸位图,你不应使用该选项,因为如果用户使用了自定义 DPI 设置,图片区的尺寸也将不同。

  • NoStretchNoCrop
    类似 NoStretchNoCropNoAlign ,但在使用 RTL 语言或以下情况时会将图像对齐到右边缘:

  • AspectFitHeight
    在保持图像高宽比的同时,按比例放大或缩小图像,直到其高度与图像控件相同。

MUI_HEADERIMAGE_BITMAP_RTL BMP文件
当使用 RTL 语言时,显示在安装程序页面顶部的位图图像 (推荐尺寸:150×57 像素)。
默认:非 RTL 语言位图

MUI_HEADERIMAGE_BITMAP_RTL_STRETCH mode
有关可用拉伸模式的列表,请参见 MUI_HEADERIMAGE_BITMAP_STRETCH。

MUI_HEADERIMAGE_UNBITMAP BMP文件
显示在卸载程序页面顶部的位图图像 (推荐尺寸:150×57 像素)
默认:安装程序顶部图片

MUI_HEADERIMAGE_UNBITMAP_STRETCH mode
有关可用拉伸模式的列表,请参见 MUI_HEADERIMAGE_BITMAP_STRETCH 。

MUI_HEADERIMAGE_UNBITMAP_RTL BMP文件
当使用 RTL 语言时,显示在卸载程序页面顶部的位图图像 (推荐尺寸:150×57 像素)。
默认:RTL 语言安装程序顶部图片

MUI_HEADERIMAGE_UNBITMAP_RTL_STRETCH mode
有关可用拉伸模式的列表,请参见 MUI_HEADERIMAGE_BITMAP_STRETCH。

MUI_HEADERIMAGE_RIGHT
在左边显示顶部图片而非右边 (当使用 RTL 语言时,将取代左边而在右边显示图片)。

MUI_BGCOLOR (16进制颜色:RRGGBB)
用于顶部、欢迎页面以及完成页面的背景色。
默认:FFFFFF

MUI_HEADER_TRANSPARENT_TEXT
设置顶部文字控件背景色为透明。当用于设置大尺寸顶部图片的自定义页面时很有用。

MUI_TEXTCOLOR (16进制颜色:RRGGBB)
标题,欢迎页面和完成页面的文本颜色。
默认:000000

Open/Close section 界面资源

MUI_UI UI文件
带有对话框资源的界面文件。如果你制作自定义 UI 文件,可修改该值。br /> 默认: ${NSISDIR}\Contrib\UIs\modern.exe

MUI_UI_HEADERIMAGE UI文件
包含一个位图控件和为顶部图片预留的空间,带有 IDD_INST 对话框资源的界面文件。
默认: ${NSISDIR}\Contrib\UIs\modern_headerbmp.exe

MUI_UI_HEADERIMAGE_RIGHT UI文件
包含一个位图控件和在右边右面为顶部图片预留的空间,带有 IDD_INST 对话框资源的界面文件。
默认: ${NSISDIR}\Contrib\UIs\modern_headerbmpr.exe

MUI_UI_COMPONENTSPAGE_SMALLDESC UI文件
带有较小描述区域的带 IDD_SELCOM 自定义对话框资源的界面文件
默认: ${NSISDIR}\Contrib\UIs\modern_smalldesc.exe

MUI_UI_COMPONENTSPAGE_NODESC UI文件
不带描述区域的带 IDD_SELCOM 自定义对话框资源的界面文件
默认: ${NSISDIR}\Contrib\UIs\modern_nodesc.exe

Open/Close section 安装程序欢迎/完成页面

MUI_WELCOMEFINISHPAGE_BITMAP BMP文件
用于欢迎页面和完成页面的位图图片 (推荐尺寸:164×314 像素)
默认: ${NSISDIR}\Contrib\Graphics\Wizard\win.bmp

MUI_WELCOMEFINISHPAGE_BITMAP_STRETCH mode
有关可用拉伸模式的列表,请参见 MUI_HEADERIMAGE_BITMAP_STRETCH。

Open/Close section 卸载程序欢迎/完成页面

MUI_UNWELCOMEFINISHPAGE_BITMAP BMP文件
用于欢迎页面和完成页面的位图图片 (推荐尺寸:164×314 像素)
默认: ${NSISDIR}\Contrib\Graphics\Wizard\win.bmp

MUI_UNWELCOMEFINISHPAGE_BITMAP_STRETCH mode
有关可用拉伸模式的列表,请参见 MUI_HEADERIMAGE_BITMAP_STRETCH。

Open/Close section 许可协议页面

MUI_LICENSEPAGE_BGCOLOR (/windows | /grey | (16进制颜色:RRGGBB))
用于许可协议文本的背景色。使用 /windows 设置为 Windows 文本背景色 (通常为白色)。使用 /grey 设置为窗口背景色 (通常为灰色)。
默认: /windows

Open/Close section 组件页面

MUI_COMPONENTSPAGE_CHECKBITMAP BMP文件
包含组件选择树状视图复选框图片的位图
默认: ${NSISDIR}\Contrib\Graphics\Checks\modern.bmp

MUI_COMPONENTSPAGE_SMALLDESC
较小的位于页面底部的文本描述区域。如果你有很多区段并且不需要太多描述,使用该布局。

MUI_COMPONENTSPAGE_NODESC
没有文本描述区域

Open/Close section 文件夹页面

MUI_DIRECTORYPAGE_BGCOLOR (16进制颜色:RRGGBB)
用于文件夹文本框的背景色

Open/Close section 开始菜单页面

MUI_STARTMENUPAGE_BGCOLOR (16进制颜色:RRGGBB)
用于开始菜单文件夹列表和文本框的背景色

Open/Close section 安装过程页面

MUI_INSTFILESPAGE_COLORS (/windows | "(foreground 16进制颜色:RRGGBB) (background 16进制颜色:RRGGBB)")
安装详情文字颜色。使用 /windows 设置为 Windows 的默认颜色。
默认: /windows

MUI_INSTFILESPAGE_PROGRESSBAR ("" | colored | smooth)
进度条的风格。使用 colored 设置为 MUI_INSTALLCOLORS。
默认: smooth

Open/Close section 安装完成页面

MUI_FINISHPAGE_NOAUTOCLOSE
不自动跳转到完成页面,以便用于检查安装记录。

Open/Close section 卸载完成页面

MUI_UNFINISHPAGE_NOAUTOCLOSE
不自动跳转到完成页面,以便用于检查卸载记录。

Open/Close section 安装终止警告

MUI_ABORTWARNING
当用户想要关闭安装程序时,显示警告对话框。

MUI_ABORTWARNING_TEXT text
显示在终止警告消息对话框上的文本

MUI_ABORTWARNING_CANCEL_DEFAULT
设置对话框上的“取消”按钮为默认按钮

Open/Close section 卸载终止警告

MUI_UNABORTWARNING
当用户想要关闭卸载程序时,显示警告对话框。

MUI_UNABORTWARNING_TEXT 文本
显示在终止警告消息对话框上的文本

MUI_UNABORTWARNING_CANCEL_DEFAULT
设置对话框上的“取消”按钮为默认按钮

3. 页面

插入下面的宏用以设置你要想使用的页面。页面将会按照你在插入这些宏的顺序显示。你也可以在两个宏之间插入自定义页面命令来增加自定义页面。

你可以添加多个某些类型的页面 (例如,如果你希望用户指定多个文件夹)。

示例:

!insertmacro MUI_PAGE_LICENSE "License.rtf"
!insertmacro MUI_PAGE_COMPONENTS

Var StartMenuFolder
!insertmacro MUI_PAGE_STARTMENU "Application" $StartMenuFolder

当使用开始菜单宏时你需要用于开始菜单文件夹的页面 ID。文件夹将被储存到指定的变量中。

安装程序页面
MUI_PAGE_WELCOME
MUI_PAGE_LICENSE 文本文件
MUI_PAGE_COMPONENTS
MUI_PAGE_DIRECTORY
MUI_PAGE_STARTMENU 页面ID变量
MUI_PAGE_INSTFILES
MUI_PAGE_FINISH

卸载程序页面
MUI_UNPAGE_WELCOME
MUI_UNPAGE_CONFIRM
MUI_UNPAGE_LICENSE 文本文件
MUI_UNPAGE_COMPONENTS
MUI_UNPAGE_DIRECTORY
MUI_UNPAGE_INSTFILES
MUI_UNPAGE_FINISH

Open/Close section 页面设置

页面设置应用于单独的页面,并且必须在插入页面宏之前设置。同样的设置可以同时用与安装程序和卸载程序。如果你想将其应用于多个页面,你必须重复使用这些设置。示例:

;添加一个文件夹页面,以便用户指定一个插件文件夹。文件夹储存到 $PluginsFolder 中。

Var PLUGINS_FOLDER
!define MUI_DIRECTORYPAGE_VARIABLE $PluginsFolder
!insertmacro MUI_PAGE_DIRECTORY

用户界面的所有标准文本将从语言文件中加载,对所有 NSIS 支持的语言都有效。所以如果你想修改默认文字,只需定义这些 (想修改的) 文字。

如果参数是为不同语言显示不同内容的文本,使用 LangString 定义语言字符串,并使用 $(LangStringName) 作为该值。要使用多语言协议文本,可使用 LicenseLangString。参考 NSIS 用户手册查看更多关于多国语言安装程序的信息。

在所有文字设置中,应避免使用双引号 ("),而使用这种格式:$\"。

Open/Close section 常规页面设置

MUI_PAGE_HEADER_TEXT 文本
显示在页面顶部的文字说明

MUI_PAGE_HEADER_SUBTEXT 文本
显示在页面顶部的子文字说明

Open/Close section 欢迎页面设置

MUI_WELCOMEPAGE_TITLE 标题
显示在页面顶部的标题

MUI_WELCOMEPAGE_TITLE_3LINES
为标题区域预留额外空间

MUI_WELCOMEPAGE_TEXT 文本
显示在页面上的文字

Open/Close section 协议页面设置

MUI_LICENSEPAGE_TEXT_TOP 文本
显示在页面顶部的文字

MUI_LICENSEPAGE_TEXT_BOTTOM 文本
显示在页面底部的文字

MUI_LICENSEPAGE_BUTTON 按钮文本
显示在“我同意”按钮上的文本

MUI_LICENSEPAGE_CHECKBOX
显示一个用户必须选中以同意许可协议的复选框

MUI_LICENSEPAGE_CHECKBOX_TEXT 文本
显示在同意许可协议复选框旁的文字

MUI_LICENSEPAGE_RADIOBUTTONS
显示两个单选按钮,允许用户选择同意或者不同意许可协议

MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT 文本
显示在同意许可协议单选框旁的文字

MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE 文本
显示在拒绝许可协议单选框旁的文字

Open/Close section 组件页面设置

MUI_COMPONENTSPAGE_TEXT_TOP 文本
显示在页面顶部的文字

MUI_COMPONENTSPAGE_TEXT_COMPLIST 文本
显示在组件列表旁的文本

MUI_COMPONENTSPAGE_TEXT_INSTTYPE 文本
显示在安装类型组合框旁的文本

MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE 文本
显示在描述框顶部的文本

MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO 文本
当没有组件选中时显示在描述框内的文本

Open/Close section 文件夹页面设置

MUI_DIRECTORYPAGE_TEXT_TOP 文本
显示在页面顶部的文字

MUI_DIRECTORYPAGE_TEXT_DESTINATION 文本
显示在目标文件夹组框的文字

MUI_DIRECTORYPAGE_VARIABLE 变量
用于储存已选择文件夹的变量
默认: $INSTDIR

MUI_DIRECTORYPAGE_VERIFYONLEAVE
当文件夹无效时不要禁用下一步按钮,但允许你在离开函数中使用 GetInstDirError 以处理无效的文件夹。

Open/Close section 开始菜单页面设置

MUI_STARTMENUPAGE_TEXT_TOP 文本
显示在页面顶部的文字

MUI_STARTMENUPAGE_TEXT_CHECKBOX 文本
显示在禁止创建开始菜单文件夹复选框旁的文字

MUI_STARTMENUPAGE_DEFAULTFOLDER 文件夹
默认的开始菜单文件夹

MUI_STARTMENUPAGE_NODISABLE
不要显示禁止创建开始菜单快捷方式的复选框

MUI_STARTMENUPAGE_REGISTRY_ROOT 根键
MUI_STARTMENUPAGE_REGISTRY_KEY 子键
MUI_STARTMENUPAGE_REGISTRY_VALUENAME 值名称
用于储存开始菜单文件夹的注册表键。页面将使用它来记忆用户设置。同样,你应该将其用于卸载程序以删除开始菜单文件夹。不要忘记在卸载过程中删除这个键。

在卸载程序中,使用宏 MUI_STARTMENU_GETFOLDER 来获取开始菜单文件夹:

!insertmacro MUI_STARTMENU_GETFOLDER page_id $R0
  Delete "$SMPROGRAMS\$R0\你的快捷方式.lnk"

Open/Close section 安装页面设置

MUI_INSTFILESPAGE_FINISHHEADER_TEXT 文本
安装程序完成后显示在安装页面顶部的文本 (使用完成页面但无 MUI_(UN)FINISHPAGE_NOAUTOCLOSE 时不显示)

MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT 文本
安装程序完成后显示在安装页面顶部的子文本 (使用完成页面但无 MUI_(UN)FINISHPAGE_NOAUTOCLOSE 时不显示)

MUI_INSTFILESPAGE_ABORTHEADER_TEXT 文本
安装程序终止时显示在安装页面顶部的文本

MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT 文本
安装程序终止时显示在安装页面顶部的子文本

Open/Close section 完成页面设置

MUI_FINISHPAGE_TITLE 标题
显示在页面顶部的标题

MUI_FINISHPAGE_TITLE_3LINES
为标题区域预留空间

MUI_FINISHPAGE_TEXT 文本
显示在页面的文本

MUI_FINISHPAGE_TEXT_LARGE
为文本区域预留空间 (如果使用了复选框)

MUI_FINISHPAGE_BUTTON 文本
显示在“完成”按钮上的文本

MUI_FINISHPAGE_CANCEL_ENABLED
启用“取消”按钮以便用户跳过完成页面的选项

MUI_FINISHPAGE_TEXT_REBOOT 文本
当询问系统重启时显示在完成页面的的文本

MUI_FINISHPAGE_TEXT_REBOOTNOW 文本
显示在“现在重启”选项旁的文本

MUI_FINISHPAGE_TEXT_REBOOTLATER 文本
显示在“稍后重启”选项旁的文本

MUI_FINISHPAGE_REBOOTLATER_DEFAULT
设置“稍后重启”项为默认选项

MUI_FINISHPAGE_RUN 可执行文件
用户使用复选框可选择运行的程序。如果文件名包含空格,无需为其加上引号。

MUI_FINISHPAGE_RUN_TEXT 文本
显示在“运行程序”复选框旁的文本

MUI_FINISHPAGE_RUN_PARAMETERS 参数
要运行程序的参数。不要忘了以致漏掉双引号 (使用 $\")。

MUI_FINISHPAGE_RUN_NOTCHECKED
默认不选择“运行程序”复选框

MUI_FINISHPAGE_RUN_FUNCTION 函数
调用函数代替运行程序 (定义 MUI_FINISHPAGE_RUN 且不带参数)。你可以使用函数来执行多个程序,还可以修改复选框的名称,将其另作他用。.

MUI_FINISHPAGE_SHOWREADME 文件/URL
用户使用复选框可选择浏览的文件或网站。如果文件名包含空格,无需为其加上引号。

MUI_FINISHPAGE_SHOWREADME_TEXT 文本
显示在“查看自述”复选框旁的文本

MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
默认不选择“查看自述”复选框

MUI_FINISHPAGE_SHOWREADME_FUNCTION 函数
调用函数代替查看文件 (定义 MUI_FINISHPAGE_SHOWREADME 且不带参数)。你可以使用函数来显示多个文件,还可以修改复选框的名称,将其另作他用。

MUI_FINISHPAGE_LINK 链接文字
用户可点击用来浏览网站或文件的链接文字

MUI_FINISHPAGE_LINK_LOCATION 文件/URL
用户使用链接可选择浏览的文件或网站。如果文件名包含空格,无需为其加上引号。

MUI_FINISHPAGE_LINK_COLOR (16进制颜色:RRGGBB)
完成页面链接文字颜色
默认: 000080

MUI_FINISHPAGE_NOREBOOTSUPPORT
禁用允许用户重启系统的页面支持。如果你没有使用 /REBOOTOK 标记或 SetRebootFlag 命令,定义这个选项可腾出一些空间。

Open/Close section 确认卸载页面设置

MUI_UNCONFIRMPAGE_TEXT_TOP 文本
显示在页面顶部的文字

MUI_UNCONFIRMPAGE_TEXT_LOCATION 文本
显示在“卸载位置”文本框旁的文字

MUI_UNCONFIRMPAGE_VARIABLE 变量
用于存储卸载源文件夹的变量。
默认: $INSTDIR

4. 语言文件

为多国语言加入新式界面包含的语言文件。

!insertmacro MUI_LANGUAGE "SimpChinese"

标准 NSIS 语言文件将自动加载,不需要使用 LoadLanguageFile 命令。

5. 预留文件

如果你使用了固实压缩,进行安装之前使用的文件必须储存在数据块的开始,因为这将让你的安装程序启动的更快。在你的区段和函数之前,为这些文件使用预留文件命令。

ReserveFile /plugin MyPlugin.dll
!insertmacro MUI_RESERVEFILE_LANGDLL ;语言选择对话框
...

用于页面的脚本

某些页面允许你显示额外的信息或可以用于获取用户信息。在这里你可以找到脚本,以便使用这些特性。

组件页面描述

Modern UI 组件页面有一个文本框,当用户鼠标经过一个组件的时候显示描述。
如果你不想使用这些描述,插入 MUI_COMPONENTSPAGE_NODESC 页面设置。

要为组件设置描述,必须为带有唯一标示符名称的 Section 命令添加一个额外参数。这个名称稍后可用于设置这个区段的描述。

Section "区段名称一" Section1
   ...
SectionEnd

在区段之后,使用这些宏来设置描述文字:

LangString DESC_Section1 ${LANG_ENGLISH} "区段一的描述"
LangString DESC_Section2 ${LANG_ENGLISH} "区段二的描述"

!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
  !insertmacro MUI_DESCRIPTION_TEXT ${Section1} $(DESC_Section1)
  !insertmacro MUI_DESCRIPTION_TEXT ${Section2} $(DESC_Section2)
!insertmacro MUI_FUNCTION_DESCRIPTION_END

卸载程序使用宏 MUI_UNFUNCTION_DESCRIPTION_BEGIN and MUI_UNFUNCTION_DESCRIPTION_END。

开始菜单文件夹

在宏 MUI_STARTMENU_WRITE_BEGIN 和 MUI_STARTMENU_WRITE_END 之间放置写入快捷方式的代码 (使用 CreateShortcut 命令):

!insertmacro MUI_STARTMENU_WRITE_BEGIN 页面ID
  ...创建快捷方式...
!insertmacro MUI_STARTMENU_WRITE_END

“页面ID”应该是用户选择用于你要写入快捷方式的文件夹的页面的 ID。

包含文件夹和页面 ID 的变量将被设置为页面宏的参数。

语言选择对话框

如果想让安装程序显示语言选择对话框 (见 MultiLanguage.nsi),在 .onInit 函数中插入宏 MUI_LANGDLL_DISPLAY:

Function .onInit

  !insertmacro MUI_LANGDLL_DISPLAY

FunctionEnd

该宏同样也可以用在 un.onInit 函数中。

Open/Close section 所选语言的注册表存储设置

要记住用户的首选项,可以定义一个注册表项。 这些定义应在插入安装页面宏之前进行设置。

MUI_LANGDLL_REGISTRY_ROOT 根键
MUI_LANGDLL_REGISTRY_KEY 子键
MUI_LANGDLL_REGISTRY_VALUENAME 值名称
注册表键值用来保存语言。用户的设置将被记忆。你同样可以用于卸载程序以便显示正确的语言。不要忘记在卸载程序中删除这个键值。

卸载程序中,在函数 un.onInit 中插入宏来获取已保存的语言设置:

Function un.onInit

  !insertmacro MUI_UNGETLANGUAGE

FunctionEnd

Open/Close section 选择对话框界面设置

要自定义语言选择对话框界面,在插入宏 MUI_LANGDLL_DISPLAY 之前使用这些“定义”(define)。

MUI_LANGDLL_WINDOWTITLE 文本
语言选择对话框窗口标题

MUI_LANGDLL_INFO 文本
显示在语言选择对话框上的文本

MUI_LANGDLL_ALWAYSSHOW
始终显示语言选择对话框,即使语言已经被储存在注册表。默认选中储存在注册表的语言。

MUI_LANGDLL_ALLLANGUAGES
始终显示所有可用语言,而不根据用户内码进行筛选。

自定义页面

如果你想给你的安装程序增加自定义页面,你可以在两个页面宏之间插入自己的页面命令。

!insertmacro MUI_PAGE_WELCOME
Page custom FunctionName ;自定义页面
!insertmacro MUI_PAGE_COMPONENTS
 
;Uninstaller
!insertmacro MUI_UNPAGE_CONFIRM
UninstPage custom un.FunctionName ;自定义页面
!insertmacro MUI_UNPAGE_INSTFILES

在页面函数中使用宏 MUI_HEADER_TEXT 来设置页面顶部文字:

LangString PAGE_TITLE ${LANG_ENGLISH} "标题文字"
LangString PAGE_SUBTITLE ${LANG_ENGLISH} "子标题文字"

Function CustomPageFunction
  !insertmacro MUI_HEADER_TEXT $(PAGE_TITLE) $(PAGE_SUBTITLE)
  ...
FuctionEnd

自定义函数

由 NSIS 提供的界面函数,比如 .onGUIInit 和页面函数已自动包含在 Modern UI 中,并且写入代码以支持新的界面特性。如果你想给这些函数增加额外的代码,在脚本中创建一个自定义脚本的函数使 Modern UI 调用它们。

示例:

!define MUI_CUSTOMFUNCTION_GUIINIT myGuiInit

Function myGUIInit
  ...
FunctionEnd

新式界面页面也可使用自定义函数来个性化

Open/Close section 常规自定义函数

应该在插入语言宏之前设置这些定义。

MUI_CUSTOMFUNCTION_GUIINIT 函数
MUI_CUSTOMFUNCTION_UNGUIINIT 函数
MUI_CUSTOMFUNCTION_ABORT 函数
MUI_CUSTOMFUNCTION_UNABORT 函数
MUI_CUSTOMFUNCTION_ONMOUSEOVERSECTION 函数
MUI_CUSTOMFUNCTION_UNONMOUSEOVERSECTION 函数

鼠标经过函数仅当使用描述宏 (MUI_FUNCTION_DESCRIPTION_BEGIN) 的时候有效。当不使用组件页面描述,通常必须使用 .onMouseOverSection 和 un.onMouseOverSection。

Open/Close section 页面自定义函数

必须在插入页面宏之前设置这些“定义”。

MUI_PAGE_CUSTOMFUNCTION_PRE 函数
MUI_PAGE_CUSTOMFUNCTION_SHOW 函数
MUI_PAGE_CUSTOMFUNCTION_LEAVE 函数
MUI_PAGE_CUSTOMFUNCTION_DESTROYED 函数

首先,PRE 函数被调用,允许你初始化变量或决定是否跳过页面。然后,SHOW 函数将被调用,可用来自定义页面。最后,在 LEAVE 函数中,可以验证用户的输入。用户手册中提供了关于这些函数的很多信息。

在 SHOW 函数中,从 Modern UI 变量中可以获取页面所有控件的窗口句柄。变量列表目前尚无法得到。现在可以参考 Modern UI 2.0 的源文件,在某些页面的头文件前几行可以找到变量声明。

在销毁外部/插件页面之后,将调用销毁的函数。

示例脚本

基本:Basic.nsi
欢迎/完成页面:WelcomeFinish.nsi
多国语言:MultiLanguage.nsi
顶部图片:HeaderBitmap.nsi
开始菜单文件夹页面:StartMenu.nsi

感谢

由 Joost Verburg 编写
图标由 Nikos Adamamas,即 adni18 设计。
感谢 Amir Szekely(又名KiCHiK)的工作让 NSIS 成为可能。

协议

zlib/libpng 协议适用于新式界面

Open/Close section 许可协议条款

版权所有  © 2002-2019 Joost Verburg

本软件依照原样提供,没有任何明示或默许的保证。
任何情况下,作者必须为任何使用本软件所造成的损害承担责任。

任何人有权以任何目的使用本软件,包括商业应用程序、修改和自由发布,并受到以下限制:

1、绝不可以歪曲软件来源,你不能声称原始软件是你写的。如果你的产品使用了这个软件,并在产品文档中承认,我们将不胜感激,但这不是必须的。
2、修改版本必须像这样清楚地标明,不能被人误以为原始软件。
3、任何发布都不可以删除或修改本条通告。